package cn.sxw.ld.module.member.pojo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author: SXW
 * @since: 2025年02月21日 15:15
 * @desc:
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CostRecord implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    // 消费记录编号，作为主键
    private Long id;

    // 会员手机号关联宠物店会员
    @TableField("phone")
    private String phone;

    // 会员姓名
    @TableField("member_name")
    private String memberName;

    // 业务类型 1 充值，2 消费
    @TableField("bs_type")
    private Integer bsType;

    // 发生金额
    @TableField("cost_amount")
    private BigDecimal costAmount;

    // 当前余额
    @TableField("balance")
    private BigDecimal balance;

    // 创建时间
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    // 最近修改时间
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    // 自动填充策略，在插入时自动填充本字段
    @TableField(fill = FieldFill.INSERT)
    private Long createUser;

    // 在插入与更新时，自动填充本字段
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;


    // 消费项目描述
    @TableField("remark")
    private String remark;

    // 支付方式，如现金、银行卡、微信、支付宝等
    @TableField("cost_method")
    private String costMethod;
}
